package com.ruoyi.wms.service;

import java.util.List;
import com.ruoyi.wms.domain.WmsOutboundOrderDetail;

/**
 * 出库单明细Service接口
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public interface IWmsOutboundOrderDetailService 
{
    /**
     * 查询出库单明细
     * 
     * @param detailId 出库单明细主键
     * @return 出库单明细
     */
    public WmsOutboundOrderDetail selectWmsOutboundOrderDetailById(Long detailId);

    /**
     * 查询出库单明细列表
     * 
     * @param wmsOutboundOrderDetail 出库单明细
     * @return 出库单明细集合
     */
    public List<WmsOutboundOrderDetail> selectWmsOutboundOrderDetailList(WmsOutboundOrderDetail wmsOutboundOrderDetail);

    /**
     * 根据出库单ID查询明细列表
     * 
     * @param orderId 出库单ID
     * @return 出库单明细集合
     */
    public List<WmsOutboundOrderDetail> selectWmsOutboundOrderDetailByOrderId(Long orderId);

    /**
     * 新增出库单明细
     * 
     * @param wmsOutboundOrderDetail 出库单明细
     * @return 结果
     */
    public int insertWmsOutboundOrderDetail(WmsOutboundOrderDetail wmsOutboundOrderDetail);

    /**
     * 修改出库单明细
     * 
     * @param wmsOutboundOrderDetail 出库单明细
     * @return 结果
     */
    public int updateWmsOutboundOrderDetail(WmsOutboundOrderDetail wmsOutboundOrderDetail);

    /**
     * 批量删除出库单明细
     * 
     * @param detailIds 需要删除的出库单明细主键集合
     * @return 结果
     */
    public int deleteWmsOutboundOrderDetailByIds(Long[] detailIds);

    /**
     * 删除出库单明细信息
     * 
     * @param detailId 出库单明细主键
     * @return 结果
     */
    public int deleteWmsOutboundOrderDetailById(Long detailId);

    /**
     * 根据出库单ID删除明细
     * 
     * @param orderId 出库单ID
     * @return 结果
     */
    public int deleteWmsOutboundOrderDetailByOrderId(Long orderId);

    /**
     * 批量新增出库单明细
     * 
     * @param detailList 出库单明细列表
     * @return 结果
     */
    public int batchInsertWmsOutboundOrderDetail(List<WmsOutboundOrderDetail> detailList);
}